package model

import (
	"gin-vue-admin/global"
	"go.uber.org/zap"
	"gorm.io/gorm"
)

type SysApi struct {
	global.GVA_MODEL
	Path        string `json:"path" gorm:"comment:api路径"`                    // api路径
	Description string `json:"description" gorm:"comment:api中文描述"`           // api中文描述
	ApiGroup    string `json:"apiGroup" gorm:"comment:api组"`                 // api组
	Method      string `json:"method" gorm:"default:POST" gorm:"comment:方法"` // 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
	Valid       bool  `json:"valid" gorm:"是否有效"`
}
func (sa *SysApi) AfterCreate(tx *gorm.DB) (err error) {
	//fmt.Printf("%+v",sa)
	gva := global.GVA_CONFIG.Mysql.Dbname
	err = tx.Exec("INSERT INTO "+gva+".casbin_rule (p_type, v0, v1, v2, v3, v4, v5) VALUES ('p', '888', ?, ?, null, null, null)", sa.Path, sa.Method).Error
	if err != nil {
		//fmt.Println("数据库callback sysAPI 创建：更新CASBIN失败")
		global.GVA_LOG.Error("新建API，自动授权失败", zap.Any("erro", err))
	} else {
		//fmt.Println("数据库callback sysAPI 创建：更新CASBIN成功")
		global.GVA_LOG.Info("新建API，自动授权成功")
	}
	return
}